package es.nadalgoyo.frikiquest.dispatcher;

import java.util.HashMap;

import android.app.Activity;
import android.os.Bundle;
import es.nadalgoyo.frikiquest.CuestionApuestaActivity;
import es.nadalgoyo.frikiquest.CuestionTiempoActivity;
import es.nadalgoyo.frikiquest.TuPierdesActivity;
import es.nadalgoyo.frikiquest.action.ActionCuestionApuesta;
import es.nadalgoyo.frikiquest.action.ActionCuestionTiempo;
import es.sergionadal.mvc.action.Action;

public class RespuestaDispatcher extends FrikiDispatcher {

	public static final int RESPUESTA_ISOK = 0;
	public static final int RESPUESTA_ISNOTOK = 1;

	public RespuestaDispatcher(Activity activityOrigen, Bundle bundle,
			int resultado) {
		super(activityOrigen, bundle, resultado);
	}

	public RespuestaDispatcher(Activity activityOrigen, int resultado) {
		super(activityOrigen, resultado);
	}

	@Override
	protected HashMap<Integer, Class<? extends Activity>> getDispatch() {
		HashMap<Integer, Class<? extends Activity>> mapaDespacho = new HashMap<Integer, Class<? extends Activity>>();
		if (getActivityOrigen().getClass() == CuestionTiempoActivity.class) {
			mapaDespacho.put(RESPUESTA_ISOK, CuestionTiempoActivity.class);
		} else {
			mapaDespacho.put(RESPUESTA_ISOK, CuestionApuestaActivity.class);
		}
		mapaDespacho.put(RESPUESTA_ISNOTOK, TuPierdesActivity.class);
		return mapaDespacho;
	}

	@Override
	public Action getAction() {
		if (getDispatch().get(getResultado()) == CuestionTiempoActivity.class) {
			return new ActionCuestionTiempo(this);
		} else if (getDispatch().get(getResultado()) == CuestionApuestaActivity.class) {
			return new ActionCuestionApuesta(this);
		} else {
			return super.getAction();
		}
	}
}
